﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using QuanLyHocPhi.Model;

namespace QuanLyHocPhi.BLL
{
    partial class BizCauHinh
    {

        /// <summary>
        /// 
        /// </summary>
        /// <param name="LaHocPhi">True: Học phí, False: Lệ phí</param>
        /// <returns></returns>
        internal static List<string> GetCauHinh(bool LaHocPhi = true)
        {
            if (LaHocPhi)
            {
                var cauHinh = BizNguoiSuDung.GetNguoiSuDung("cauhinhhocphi");
                if (cauHinh != null)
                {
                    string[] rs = cauHinh.MatKhau.Split(new char[] { ';' });
                    List<string> kq = new List<string>();
                    for (int i = 0; i < rs.Count(); i++)
                    {
                        kq.Add(rs[i]);
                    }
                    return kq;
                }
                return null;
            }
            else
            {
                var cauHinh = BizNguoiSuDung.GetNguoiSuDung("cauhinhlephi");
                if (cauHinh != null)
                {
                    string[] rs = cauHinh.MatKhau.Split(new char[] { ';' });
                    List<string> kq = new List<string>();
                    for (int i = 0; i < rs.Count(); i++)
                    {
                        kq.Add(rs[i]);
                    }
                    return kq;
                }
                return null;
            }
        }

        internal static void UpdateCauHinh(string soBienLai, bool LaHocPhi = true)
        {
            if (LaHocPhi)
            {
                var cauHinh = BizNguoiSuDung.GetNguoiSuDung("cauhinhhocphi");
                if (cauHinh == null)
                    BizNguoiSuDung.AddNew(new NguoiSuDung() { TenDangNhap = "cauhinhhocphi", HoTen = "Cấu hình phiếu thu học phí", MatKhau = soBienLai, VaiTro = Constant.VaiTroCauHinhPhieuThu });
                else
                    BizNguoiSuDung.DoiMatKhau(cauHinh, soBienLai);
            }
            else
            {
                var cauHinh = BizNguoiSuDung.GetNguoiSuDung("cauhinhlephi");
                if (cauHinh == null)
                    BizNguoiSuDung.AddNew(new NguoiSuDung() { TenDangNhap = "cauhinhlephi", HoTen = "Cấu hình phiếu thu lệ phí", MatKhau = soBienLai, VaiTro = Constant.VaiTroCauHinhPhieuThu });
                else
                    BizNguoiSuDung.DoiMatKhau(cauHinh, soBienLai);
            }
        }

        internal static List<string> IncrementCauHinh(ref string soQuyenStr, ref string soPhieuStr, string tongSoPhieu, string soPhieuLonNhatStr)
        {
            var tongSoPhieuTrongQuyen = int.Parse(tongSoPhieu);
            var soPhieu = int.Parse(soPhieuStr);
            var soQuyen = int.Parse(soQuyenStr);
            var soPhieuLonNhat = int.Parse(soPhieuLonNhatStr);
            if (soPhieu % tongSoPhieuTrongQuyen == 0)
                soQuyen++;
            //soPhieu = 1;
            soPhieu++;
            if (soPhieu > soPhieuLonNhat)
            {
                soPhieu = 1;
                soQuyen = 1;
            }
            List<string> kq = new List<string>();
            kq.Add(soQuyen.ToString());
            kq.Add(soPhieu.ToString());
            kq.Add(tongSoPhieuTrongQuyen.ToString());
            soQuyenStr = soQuyen.ToString();
            soPhieuStr = soPhieu.ToString();
            tongSoPhieu = tongSoPhieuTrongQuyen.ToString();
            return kq;
        }

        internal static void UpdateCauHinh(string quyenSo, string soPhieu, string tongSoPhieu, string soPhieuLonNhat, bool LaHocPhi = true)
        {
            var soBienLai = quyenSo + ";" + soPhieu + ";" + tongSoPhieu + ";" + soPhieuLonNhat;
            if (LaHocPhi)
            {
                var cauHinh = BizNguoiSuDung.GetNguoiSuDung("cauhinhhocphi");
                if (cauHinh == null)
                    BizNguoiSuDung.AddNew(new NguoiSuDung() { TenDangNhap = "cauhinhhocphi", HoTen = "Cấu hình phiếu thu học phí", MatKhau = soBienLai, VaiTro = Constant.VaiTroCauHinhPhieuThu });
                else
                    BizNguoiSuDung.DoiMatKhau(cauHinh, soBienLai);
            }
            else
            {
                var cauHinh = BizNguoiSuDung.GetNguoiSuDung("cauhinhlephi");
                if (cauHinh == null)
                    BizNguoiSuDung.AddNew(new NguoiSuDung() { TenDangNhap = "cauhinhlephi", HoTen = "Cấu hình phiếu thu lệ phí", MatKhau = soBienLai, VaiTro = Constant.VaiTroCauHinhPhieuThu });
                else
                    BizNguoiSuDung.DoiMatKhau(cauHinh, soBienLai);
            }
        }
    }
}
